home *** CD-ROM | disk | FTP | other *** search
- Path: think!mit-eddie!rutgers!seismo!mcvax!botter!ast
- From: ast@botter.cs.vu.nl (Andy Tanenbaum)
- Newsgroups: comp.sys.ibm.pc,comp.sys.atari.st,comp.unix.wizards,comp.unix.xenix,comp.sources.d
- Subject: MINIX
- Message-ID: <1028@botter.cs.vu.nl>
- Date: 10 Jan 87 22:33:17 GMT
- Reply-To: ast@cs.vu.nl (Andy Tanenbaum)
- Distribution: world
- Organization: VU Informatica, Amsterdam
- Lines: 70
- Xref: think comp.sys.ibm.pc:885 comp.sys.atari.st:778 comp.unix.wizards:557 comp.unix.xenix:47 comp.sources.d:117
-
- First, I would like to apologize if I over-crossposted. I haven't posted much
- to the net before, so I may have done things wrong. I was under the impression
- that if one sends to multiple groups it cross posts them in such a way that
- each reader only gets the message once, even if the reader subscribes to all
- of them. If I am wrong will somebody please tell me how to do it (by mail).
- It is also possible that I messed up. Furthermore, we were having news and
- mail problems at the time, which may have contributed. It was my intention
- that a lot of people see it once, not that a few people see it many times.
-
- As to being commercial, that's true I guess, but since I am supplying 50,000
- lines of source code without copy protection for $79, and I don't mind a
- limited amount of copying of the binary and source code, it is not in the same
- league as normal PC software in terms of the owners zealously guarding both
- binaries and sources. In fact, it is probably somewhat closer to the Free
- Software Foundation's way of doing things (also copyrighted) than to Lotus.
- I assumed (and judging by the response, probably correctly) that there would be
- a fair amount of interest. Sorry if I offended people.
-
- Maybe it would be best to set up comp.os.minix now. Will everyone who would
- want to subscribe to it send me mail. If there is a sufficient number, I
- will ask the local guru how one sets up a new group and try to avoid messing
- that up too. I will cross post this to various groups, but just stick to
- comp.sys.ibm.pc or comp.os.minix (depending on the reaction) in the future.
-
- Several people have asked me questions whose answers may be of general interest,
- so I will post them here.
-
- Q1: Can you have multiple users on a PC?
- A1: In theory yes. The terminal driver has an array indexed by terminal
- number from 0 to some maximum. At present that maximum is 1, so you
- have to change a constant and recompile the tty driver. Also, there
- is no RS232 driver (the deadline had a race with RS232 and the deadline
- won). Therefore such a driver has to be made, but it is quite simple.
- Most of the hooks and handles you need are already there, for example,
- when it is time to output a character on tty n, the driver calls a
- function pointed to by tty_struct[n].tty_devstart, so each terminal
- can have a different routine to actually output the character. In this
- way you can mix various device types.
-
- Q2: How compatible does a machine have to be to run MINIX?
- A2: It needs a NEC uD765 chip as floppy disk controller, a Motorola 6845 as
- video controller, etc. If the hard disk controller is nonstandard, the
- hard disk won't work, but the rest will. Machines with different I/O
- chips but try to hide this by presenting the same BIOS interface won't
- work. About a dozen different clones have been tested. MINIX worked
- without problems on 80% and failed on 20%.
-
- Q3: Can you call assembler routines from the MINIX C compiler in order to
- write drivers for new devices?
- A3: Yes. The C compiler uses the standard UNIX calling convention of pushing
- the parameters onto the stack in reverse order, so there is no problem
- writing bits of a program in assembler. The assembly language accepted
- by the MINIX assembler is identical to that of PC-IX, the "official" IBM
- UNIX system for the PC. Assembly routines for reading and writing I/O
- ports are present in the file kernel/klib88.s (port_in and port_out).
-
- Q4: What do you mean it will sort of run on a 512K machine?
- A4: It will boot fine and run ok with 512K, but since it doesn't swap, it
- won't be possible to run a lot of background jobs without running out
- of memory. Also, if you use make, you may discover that make + cc +
- the various passes that get forked off may not fit in core at once, which
- causes EXECs to fail and make to get an error return. This can be solved
- by changing the amount of stack space allocated to the compiler passes
- using the chmem utility. (chmem is functionally the same as in PC-IX,
- which works the same way.) Reducing the stack allocated to compiler
- passes means that some very large programs may not compile. With a 640K
- system, files > 50K characters have compiled. With 512K, that limit may
- be lower.
-
- Andy Tanenbaum (minix@cs.vu.nl)
-